package model;

/**
 * Тип бойца.
 */
public enum TrooperType {
    /**
     * Командир. Одним своим присутствием командир способен поднять боевой дух солдат.
     * Все юниты игрока в радиусе 5 клеток от командира получают в начале своего хода
     * на 2 очка действия больше, чем обычно. Не распространяется на самого командира.
     */
    COMMANDER,

    /**
     * Полевой медик. Медик способен залечивать раны бойцов прямо на поле боя.
     * Потратив одно очко действия, он может восполнить 5 единиц здоровья юниту,
     * находящемуся на выбранной соседней (по вертикали или горизонтали) клетке,
     * или 3 единицы здоровья себе. Здоровье юнита не может стать больше 100.
     */
    FIELD_MEDIC,

    /**
     * Штурмовик. Для прорыва хорошо укреплённой линии обороны противника штурмовик
     * оснащён стальным нагрудником, который способен принять на себя некоторое
     * количество урона --- начальное количество очков здоровья у штурмовика на 20 больше,
     * чем у любого другого юнита. Однако штурмовик может быть излечен полевым медиком
     * или аптечкой первой помощи только до уровня в 100 очков здоровья.
     */
    SOLDIER,

    /**
     * Снайпер. Снайпер в совершенстве владеет искусством маскировки.
     * В процессе проверки видимости снайпера, находящегося в положении сидя,
     * эффективный радиус обзора юнитов противника считается меньше табличного на 0.5 клетки.
     * Если снайпер находится в положении лёжа, то штраф составляет 1 клетку.
     * Также в положении сидя дальность стрельбы снайпера увеличивается на 1,
     * а в положении лёжа --- на 2.
     */
    SNIPER,

    /**
     * Разведчик. Намётанный глаз разведчика позволяет отличать замаскированные цели:
     * разведчик не получает штрафа к дальности обзора при обнаружении снайперов противника.
     * У разведчика на 2 очка действия больше, чем у других бойцов, однако он привык действовать
     * самостоятельно и поэтому не получает дополнительных очков действия рядом с командиром.
     */
    SCOUT
}
